import { lazyReportBatch } from "../report";

// LCP 测量视口中的最大内容元素加载并变得可见所需的时间。这可以是图像、视频或文本块（2.5s）
export default function observeFCP():PerformanceObserver{
    const PAINT_TYPE = 'largest-contentful-paint';
  
      const entryHandler=(list:PerformanceObserverEntryList,observer:PerformanceObserver):void=>{
        observer&&observer.disconnect();
        for(const entry of list.getEntries()){  
            const json=entry.toJSON();
             console.log(json);
             const reportData={
              ...json,
              type:"performance",
              subType:entry.name,
              pageUrl:window.location.href
             }
             console.log(reportData);
             //TODO:上报数据
             //lazyReportBatch(reportData);
        }
      }
      //统计和计算fcp的时间
      const observer:PerformanceObserver=new PerformanceObserver(entryHandler);
      //buffered:true确保观察到所有paint事件,
      observer.observe({type:PAINT_TYPE,buffered:true});
      return observer;
  }